/**
 * axios实例
 */
import axios from 'axios';
import {unref} from 'vue';
import {ElMessageBox} from 'element-plus/es';
import {API_BASE_URL} from '@/config/setting.js'
import router from '@/router';
import {getToken} from './token-util';
// import {logout, toURLSearch} from './common';

/** 创建axios实例 */
const service = axios.create({
    baseURL: API_BASE_URL
});

/**
 * 请求拦截处理
 */
export function requestInterceptor(config) {
    // 添加token到header
    const token = getToken();
    if (token && config.headers) {
        config.headers['Authorization'] = token;
    }
    // get请求处理数组和对象类型参数
    if (config.method === 'get' && config.params) {
        config.url = toURLSearch(config.params, config.url);
        config.params = {};
    }
}


/**
 * 添加请求拦截器
 */
service.interceptors.request.use(
    (config) => {
        requestInterceptor(config);
        return config;
    },
    (error) => {
        console.error(error);
        return Promise.reject(new Error('网络错误'));
    }
);

// service.interceptors.request.use(
//     (config) => {
//         // get请求处理数组和对象类型参数
//         if (config.method === 'get' && config.params){
//             config.url = toURLSearch(config.params, config.url);
//             config.params = {};
//         }
//         return config;
//     },
//     (error) =>{
//         return Promise.reject(error);
//     }
// );

/**
 * 添加响应拦截器
 */
// service.interceptors.response.use(
//     (res) => {
//         return res;
//     },
//     (error) => {
//         return Promise.reject(error);
//     }
// );

export default service;
